home *** CD-ROM | disk | FTP | other *** search
/ Programmer Plus 2007 / Programmer-Plus-2007.iso / Programming / SQL and Data Base / Logic Works ERwin 3.5 / data.1 / erwstapp.fiv < prev    next >
Encoding:
Text File  |  1998-01-28  |  2.3 KB  |  69 lines

  1. /* ------------------------------------------------------------------------
  2. --    ERWSTAPP.FIV                                                          --
  3. --    Copyright (C) Logic Works, Inc. 1994                                 --
  4. --                                                                       --
  5. --  Stored function to start a Oracle CASE 5.1 CDAPI activity             --
  6. --                                                                        --
  7. --                                                                       --
  8. ------------------------------------------------------------------------ */
  9. CREATE OR REPLACE FUNCTION ERWSTAPP(pName CI_APPLICATION_SYSTEMS.NAME%TYPE,
  10.                            pVersion CI_APPLICATION_SYSTEMS.VERSION%TYPE)
  11.         RETURN CI_APPLICATION_SYSTEMS.ID%TYPE
  12.         AS
  13.             TYPE recApp IS RECORD
  14.                 (ID            CI_APPLICATION_SYSTEMS.ID%TYPE,
  15.                  NAME         CI_APPLICATION_SYSTEMS.NAME%TYPE,
  16.                  VERSION    CI_APPLICATION_SYSTEMS.VERSION%TYPE);
  17.             prApp        recApp;          
  18.             stApp        cioapplication_system.data;
  19.             act_status    varchar2(100);
  20.             act_warnings varchar2(100);
  21.         BEGIN
  22.              IF pVersion = 0 THEN
  23.                  SELECT ID, NAME, VERSION INTO prApp 
  24.                      FROM CI_APPLICATION_SYSTEMS
  25.                      WHERE CI_APPLICATION_SYSTEMS.NAME = UPPER(pName) 
  26.                      and CI_APPLICATION_SYSTEMS.LATEST_VERSION_FLAG='Y';
  27.                     cdapi.initialize(pName);
  28.             ELSE
  29.                  SELECT ID, NAME, VERSION INTO prApp 
  30.                      FROM CI_APPLICATION_SYSTEMS
  31.                      WHERE CI_APPLICATION_SYSTEMS.NAME = UPPER(pName) 
  32.                      and CI_APPLICATION_SYSTEMS.VERSION = pVersion;
  33.                     cdapi.initialize(pName,pVersion);
  34.             END IF;
  35.             RETURN prApp.ID;
  36.          EXCEPTION
  37.             WHEN NO_DATA_FOUND THEN
  38.                  cdapi.initialize;
  39.                 cdapi.open_activity;
  40.                 stApp.v.NAME := pName;
  41.                 stApp.i.NAME := true;
  42.                 stApp.v.DESCRIPTION_1 := 'New Application created by ERWin';
  43.                 stApp.i.DESCRIPTION_1 := true;
  44.                 BEGIN
  45.                     cioapplication_system.ins(null,stApp);
  46.                     cdapi.validate_activity(act_status, act_warnings);
  47.                     cdapi.close_activity(act_status);
  48.                     if act_status != 'Y' then
  49.                         cdapi.abort_activity;
  50.                     end if;
  51.                     SELECT ID, NAME, VERSION INTO prApp FROM CI_APPLICATION_SYSTEMS
  52.                          WHERE CI_APPLICATION_SYSTEMS.NAME = UPPER(pName); 
  53.                     RETURN prApp.ID;    
  54.                 EXCEPTION
  55.                     WHEN OTHERS THEN
  56.                         if cdapi.stacksize > 0 then 
  57.                             if cdapi.activity is not null then 
  58.                                 cdapi.abort_activity;
  59.                             end if;
  60.                         else
  61.                             if cdapi.activity is not null then 
  62.                                 cdapi.abort_activity;
  63.                             end if;
  64.                         end if;
  65.                         RETURN  -1;
  66.                 END;    
  67. END ERWSTAPP;
  68. /
  69.